<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 简单数据类型 null 返回的是一个空的对象 object
        var timer = null;
        console.log(timer);
        // 如果有一个变量我们以后打算存储为对象，暂时没想好放啥，这个时候就给null
        
        // 1.简单数据类型 存放在栈里 里面开辟一个空间存放的是值
        // 2.复杂数据类型 栈存放地址 十六进制表示 地址指向堆里的数据
        // 3.简单数据类型传参
        function fn(a) {// 形参a得到实参x的值10，对形参的任何修改都不会影响到外部变量
            a++;
            console.log(a);
        }
        var x = 10;
        fn(x);//将x=10传进去
        console.log(x);

        function Person(name) {//p指向地址，地址指向数据
            this.name = name;
        }
        function f1(x) {//x=p的地址，地址指向数据
            console.log(x.name);//刘德华
            x.name = "张学友";//对地址数据修改
            console.log(x.name);//张学友
        }
        var p = new Person("刘德华"); // 构造函数创建对象
        console.log(p.name);//刘德华
        f1(p);
        console.log(p.name);//修改后张学友
    </script>
</head>
<body>
    
</body>
</html>